Skip to content

refactor(plugin)!: rename /stocks:reports to /stocks:list - #337

Merged
ralyodio merged 1 commit into
mainfrom
rename-reports-to-list
Aug 9, 2026
Merged

refactor(plugin)!: rename /stocks:reports to /stocks:list#337
ralyodio merged 1 commit into
mainfrom
rename-reports-to-list

Conversation

@ralyodio

@ralyodio ralyodio commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

BREAKING CHANGE: /stocks:reports is now /stocks:list.

report and reports differed by one letter and by nothing else visible at the prompt — singular takes a symbol and writes one report, plural takes none and lists the whole covered set. That's a coin-flip every time, and it only became a real hazard in v0.30.0, when /stocks:stocks became /stocks:report and put the two names right next to each other.

Why list and not index

index was the other obvious candidate and is the word the repo already uses in prose ("the stored index"). But in a plugin about equities, /stocks:index reads as a market index — someone would reasonably expect S&P 500 data. list can't be misread that way.

The CLI needs no change

moshcode stocks list has been an alias for reports since the verb existed:

$ moshcode stocks list --limit 3
  9 stored reports
  NVDA    64.6/100  conservative   $207.23  NVIDIA CORP   2026-08-03
  …

So this makes the plugin agree with the CLI rather than diverge from it.

Versions

Both plugins go to 0.4.0. crypto is bumped too, and not just for symmetry: its /crypto:help names the stocks command set, so its content changed as well — without the bump an existing install would keep printing a command that no longer exists.

Verification

  • Full suite: 1390 tests, 0 failures.
  • moshcode plugin list shows /stocks:list in place of /stocks:reports.

🤖 Generated with Claude Code

BREAKING CHANGE: `/stocks:reports` is now `/stocks:list`.

`report` and `reports` differed by one letter and by nothing else visible at the
prompt — singular takes a symbol and writes one report, plural takes none and
lists the whole covered set. That is a coin-flip every time, and it only became
a real hazard in v0.30.0 when `/stocks:stocks` became `/stocks:report` and put
the two names next to each other.

`list` rather than `index`, which is the other obvious candidate: in a plugin
about equities, `/stocks:index` reads as a market index. `list` cannot.

The CLI needs no change — `moshcode stocks list` has been an alias for `reports`
since the verb existed, so this makes the plugin agree with the CLI rather than
diverge from it.

Both plugins go to 0.4.0. crypto is bumped too, and not just for symmetry: its
`/crypto:help` names the stocks command set, so its content changed as well and
an install would otherwise keep printing a command that no longer exists.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown

ThreatCrush Security Scan

91 finding(s)

HIGH/CRITICAL: 2 | MEDIUM: 41 | LOW: 48

Severity Rule Location
HIGH manifest-typosquat apps/pwa/package.json:19
HIGH js-ssrf-outbound-request apps/pwa/public/sw.js:45
MEDIUM tls-verification-disabled apps/pwa/src/lib/moshpit-gateway.mjs:299
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:61
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:75
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:101
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:265
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:269
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:314
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:499
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:675
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:677
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:736
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:782
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:852
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:955
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:1063
MEDIUM sql-template-interpolation apps/pwa/src/moshpit.mjs:1199
MEDIUM js-unescaped-html-sink apps/pwa/src/routes/moshpit.mjs:1419
MEDIUM js-dynamic-code-execution apps/pwa/test/apikey-mask.test.mjs:129
MEDIUM sql-template-interpolation apps/pwa/test/credits-webhook-event-match.test.mjs:111
MEDIUM sql-template-interpolation apps/pwa/test/credits-webhook-event-match.test.mjs:131
MEDIUM sql-template-interpolation apps/pwa/test/moshpit-terms.test.mjs:192
MEDIUM sql-template-interpolation src/dns.mjs:2439
MEDIUM sql-template-interpolation src/selfupdate.mjs:166
MEDIUM sql-template-interpolation src/selfupdate.mjs:170
MEDIUM sql-template-interpolation src/selfupdate.mjs:208
MEDIUM sql-template-interpolation src/selfupdate.mjs:209
MEDIUM insecure-temp-file test/dns-disable-restore.test.mjs:93
MEDIUM insecure-temp-file test/dns-disable-restore.test.mjs:310
MEDIUM insecure-temp-file test/plugins.test.mjs:152
MEDIUM insecure-temp-file test/pty.test.mjs:28
MEDIUM insecure-temp-file test/pty.test.mjs:31
MEDIUM insecure-temp-file test/pty.test.mjs:40
MEDIUM insecure-temp-file test/pty.test.mjs:42
MEDIUM insecure-temp-file test/pty.test.mjs:47
MEDIUM insecure-temp-file test/pty.test.mjs:48
MEDIUM insecure-temp-file test/pty.test.mjs:49
MEDIUM insecure-temp-file test/tabs.test.mjs:8
MEDIUM insecure-temp-file test/tabs.test.mjs:13
MEDIUM insecure-temp-file test/tabs.test.mjs:14
MEDIUM insecure-temp-file test/tabs.test.mjs:22
MEDIUM insecure-temp-file test/trust.test.mjs:240
LOW secret-generic-credential apps/pwa/test/apikey-bearer-scheme.test.mjs:30
LOW secret-generic-credential apps/pwa/test/apikey-mask.test.mjs:38
LOW secret-generic-credential apps/pwa/test/apikey-reveal.test.mjs:35
LOW secret-generic-credential apps/pwa/test/approvals-context.test.mjs:28
LOW secret-generic-credential apps/pwa/test/approvals-credits.test.mjs:28
LOW secret-generic-credential apps/pwa/test/approvals-notify.test.mjs:26
LOW secret-generic-credential apps/pwa/test/approvals-resolve-race.test.mjs:20

…and 41 more. Full results in the Security tab.

Snippets are redacted; ThreatCrush never prints matched credential material.

@ralyodio
ralyodio merged commit d61b4cb into main Aug 9, 2026
4 checks passed
@ralyodio ralyodio mentioned this pull request Aug 9, 2026
ralyodio added a commit that referenced this pull request Aug 9, 2026
Bump to v0.31.0, releasing the /stocks:reports → /stocks:list rename (#337).

Breaking, in the plugins rather than the CLI, and a direct consequence of
v0.30.0: renaming /stocks:stocks to /stocks:report put `report` and `reports`
next to each other, one letter apart, which is a coin-flip at the prompt.

`moshcode stocks list` already worked, so the CLI is untouched — this makes the
plugin agree with it.

Both plugins go to 0.4.0. crypto changed too: its /crypto:help names the stocks
command set, so an un-bumped install would keep printing a command that no
longer exists.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
@ralyodio
ralyodio deleted the rename-reports-to-list branch August 9, 2026 01:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant